/*****************************
 *@file: NormalBulletComp
 *@author: 陈吕唐
 *@desc: 普通子弹
 *@date: 2024-03-12	10:06
 *****************************/
import { Collider2D, IPhysics2DContact, _decorator } from 'cc';
import GameUtils from '../GameUtils';
import IBaseInjureBullet from '../core/fight/IBaseInjureBullet';
import { PhysicsGroupEnum } from '../enum/PhysicsGroupEnum';
import { BaseBulletComp } from './BaseBulletComp';
const { ccclass, property } = _decorator;

@ccclass('NormalBulletComp')
export class NormalBulletComp extends BaseBulletComp implements IBaseInjureBullet {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    protected override onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact): void {
        super.onBeginContact(selfCollider, otherCollider, contact);

        switch (otherCollider.group) {
            case PhysicsGroupEnum.BORDER:
                this.recycleBullet();
                break;
            default:
                break;
        }

        let fight = GameUtils.getFightByCollider(otherCollider);
        if (!fight) {
            return;
        }
        fight.hurt(this);
        this.recycleBullet();
    }

    protected override onEndContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact): void {
        super.onEndContact(selfCollider, otherCollider, contact);
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/

}


